﻿using DongFangGuoKai.WMSPlatform.Domain.AGVModels;
using DongFangGuoKai.WMSPlatform.Domain.Models;
using DongFangGuoKai.WMSPlatform.Service.InboundOrderDetail.DTO;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DongFangGuoKai.WMSPlatform.Service.InboundOrderDetail
{
    public interface ITReceivingOrderDetailService
    {

        /// <summary>
        /// 添加入库委托单
        /// </summary>
        /// <param name="addReceivingBilDTO"></param>
        /// <param name="Message"></param>
        /// <returns></returns>
        bool AddOrders(AddReceivingBilDTO addReceivingBilDTO, out string Message);

        /// <summary>
        /// 新组垛
        /// </summary>
        /// <param name="errMsg"></param>
        /// <param name="stackingStorageDTO"></param>
        /// <returns></returns>
        bool NewStackingStorage(out string errMsg, StackingStorageDTO stackingStorageDTO);

        /// <summary>
        /// 满箱操作
        /// </summary>
        /// <param name="palletCode">箱号</param>
        /// <returns></returns>
        bool FullBox(string palletCode, out string errMsg);

        /// <summary>
        /// 开始入库
        /// </summary>
        /// <param name="errorMsg"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        bool NewExecCreateMaterialsInstruct(out string errorMsg,out string cellName, params object[] data);

        /// <summary>
        /// 完成入库
        /// </summary>
        /// <param name="instruct"></param>
        /// <param name="errorMsg"></param>
        /// <returns></returns>
        bool NewExecInstructFinishedMaterials(t_Instruct instruct, out string errorMsg);

        /// <summary>
        /// 作废委托单
        /// </summary>
        /// <param name="OrderNo"></param>
        /// <param name="errorMsg"></param>
        /// <returns></returns>
        bool VoidOrder(string OrderNo, out string errorMsg);

        /// <summary>
        /// 样品分实验室
        /// </summary>
        /// <param name="SampleId"></param>
        /// <param name="showColor"></param>
        /// <param name="errorMsg"></param>
        /// <returns></returns>
        bool SortingLaboratory(string sampleCode, int showColor, out string errorMsg);

        /// <summary>
        /// 样品分实验室满箱
        /// </summary>
        /// <param name="palletCode"></param>
        /// <returns></returns>
        bool SortingLaboratoryFull(string palletCode, out string errorMsg);

    }
}
